package com.newjiabo.ski.service;

import java.util.List;

import com.newjiabo.ski.domain.SkiSetMeal;
import com.newjiabo.ski.domain.dto.SetMealServicesRelDto;
import com.newjiabo.ski.domain.enums.SetMealStatus;
import com.newjiabo.ski.domain.vo.SkiMetMealInfoVo;

/**
 * 套餐配置Service接口
 *
 * @author ruoyi
 * @date 2023-09-18
 */
public interface ISkiSetMealService {
    /**
     * 查询套餐配置
     *
     * @param id 套餐配置主键
     * @return 套餐配置
     */
    SkiSetMeal selectSkiSetMealById(String id);

    /**
     * 查询套餐配置列表
     *
     * @param skiSetMeal 套餐配置
     * @return 套餐配置集合
     */
    List<SkiSetMeal> selectSkiSetMealList(SkiSetMeal skiSetMeal);

    /**
     * 新增套餐配置
     *
     * @param skiSetMeal 套餐配置
     * @return 结果
     */
    int insertSkiSetMeal(SkiSetMeal skiSetMeal);

    /**
     * 修改套餐配置
     *
     * @param skiSetMeal 套餐配置
     * @return 结果
     */
    int updateSkiSetMeal(SkiSetMeal skiSetMeal);

    /**
     * 批量删除套餐配置
     *
     * @param ids 需要删除的套餐配置主键集合
     * @return 结果
     */
    int deleteSkiSetMealByIds(String[] ids);

    /**
     * 删除套餐配置信息
     *
     * @param id 套餐配置主键
     * @return 结果
     */
    int deleteSkiSetMealById(String id);

    /**
     * 通过id集合获取信息
     *
     * @param setMealIds
     * @return
     * @author CaoMengHui.
     * @date 2023/9/18 17:57
     */
    List<SkiSetMeal> selectByIds(List<String> setMealIds);

    /**
     * 查询所有的信息
     *
     * @return
     * @author CaoMengHui.
     * @date 2023/9/18 18:01
     */
    List<SkiSetMeal> selectAll();


    /**
     * 新增套餐信息
     *
     * @param setMealServicesRelDto
     * @return
     * @author CaoMengHui.
     * @date 2023/9/20 9:43
     */
    int addSetMeal(SetMealServicesRelDto setMealServicesRelDto);

    /**
     * 修改套餐
     *
     * @param setMealServicesRelDto
     * @param setMealId
     * @return
     * @author CaoMengHui.
     * @date 2023/9/20 10:34
     */
    int updateSetMeal(SetMealServicesRelDto setMealServicesRelDto, String setMealId);

    /**
     * 获取详情
     *
     * @param id
     * @return
     * @author CaoMengHui.
     * @date 2023/9/20 16:08
     */
    SkiMetMealInfoVo getInfo(String id);

    /**
     * 通过snowFieldId查询套餐信息
     *
     * @param snowFieldId
     * @param setMealStatus
     * @return
     * @author CaoMengHui.
     * @date 2023/9/23 14:57
     */
    List<SkiSetMeal> getBySnowFieldId(String snowFieldId, SetMealStatus setMealStatus);

}
